/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */
package com.controller;

import com.persistencia.domain.Salon;
import com.persistencia.domain.Salonxmodalidaddictado;
import com.persistencia.domain.SalonxmodalidaddictadoPK;
import com.service.SalonService;
import com.service.SalonXMDService;
import com.service.impl.SalonServiceImpl;
import com.service.impl.SalonXMDServiceImpl;
import java.util.ArrayList;
import java.util.List;
import java.util.logging.Level;
import java.util.logging.Logger;
import javax.faces.application.FacesMessage;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import javax.faces.context.FacesContext;

/**
 *
 * @author SHERLY
 */
@ManagedBean
@ViewScoped
public class SalonController {

    private Salon salon;
    private Salon salonSeleccionado;
    private List<Salon> listaSalon;
    private SalonService salonService;
    private SalonXMDService salonXMDService;
    private List<String> listaModalidadDictado;
    private String nombre;
    private String estado;
    
    public SalonController() {
        salon = new Salon();
        salonSeleccionado = new Salon();
        listaSalon = new ArrayList<Salon>();
        salonService = new SalonServiceImpl();
        salonXMDService = new SalonXMDServiceImpl();
        listaModalidadDictado = new ArrayList<String>();
        listarSalon();
    }
    
    private void listarSalon(){
        try{
            System.out.println("Entramos a listar salon");
            listaSalon = salonService.obtenerListaSalon();
            if ( listaSalon.isEmpty() ){
                 FacesMessage msg = new FacesMessage("No hay registros.");
                FacesContext.getCurrentInstance().addMessage(null, msg);            
            }
        } catch (Exception ex) {
            Logger.getLogger(CicloController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void consultarSalon(){
        try{
            listarSalon();
        } catch (Exception ex) {
            Logger.getLogger(CicloController.class.getName()).log(Level.SEVERE, null, ex);
        }
    }
    
    public void grabarSalon(){
        FacesMessage msg = null;
        try{
            System.out.println("Entramos a crear salon");
            salonService.registrarSalon(salon);
            for (int i = 0; i < listaModalidadDictado.size(); i++) {
                System.out.println("i="+i+",val="+listaModalidadDictado.get(i));                
                salonXMDService.registrarSalonXMD(new Salonxmodalidaddictado(
                        new SalonxmodalidaddictadoPK(salonService.salonMaxId(),
                                Integer.parseInt(listaModalidadDictado.get(i))) ));
            }           
            
            msg = new FacesMessage(FacesMessage.SEVERITY_INFO,"Inserción","El salon se creo satisfactoriamente.");
            salon = new Salon();
            listarSalon();
        } catch (Exception ex) {
            Logger.getLogger(CicloController.class.getName()).log(Level.SEVERE, null, ex);
            msg = new FacesMessage(FacesMessage.SEVERITY_ERROR,"Inserción","No se registro el salon.");
        }
        finally{
            
            FacesContext.getCurrentInstance().addMessage(null, msg);
        }
    }

    public List<Salon> getListaSalon() {
        return listaSalon;
    }

    public void setListaSalon(List<Salon> listaSalon) {
        this.listaSalon = listaSalon;
    }

    public Salon getSalon() {
        return salon;
    }

    public void setSalon(Salon salon) {
        this.salon = salon;
    }

    public Salon getSalonSeleccionado() {
        return salonSeleccionado;
    }

    public void setSalonSeleccionado(Salon salonSeleccionado) {
        this.salonSeleccionado = salonSeleccionado;
    }

    public SalonService getSalonService() {
        return salonService;
    }

    public void setSalonService(SalonService salonService) {
        this.salonService = salonService;
    }

    public String getEstado() {
        return estado;
    }

    public void setEstado(String estado) {
        this.estado = estado;
    }

    public String getNombre() {
        return nombre;
    }

    public void setNombre(String nombre) {
        this.nombre = nombre;
    }

    public List<String> getListaModalidadDictado() {
        return listaModalidadDictado;
    }

    public void setListaModalidadDictado(List<String> listaModalidadDictado) {
        this.listaModalidadDictado = listaModalidadDictado;
    }
            
}